<?php
// 1. 连接mysql  选择数据库
@include_once("conn.php");


// mysqli_query($conn, $sql)   执行传入的sql语句
// $conn 链接对象
// $sql  需要执行的sql语句

// 返回值(查询):
// 语句执行成功 => 返回查询的结果对象 (mysqli_result Object  => 需要进一步解析才能得到数据)
// 语句执行失败 => false  

$sql = "select id,name,class,chinese,math,english, chinese + math + english as total from `grade`";
$result = mysqli_query($conn, $sql);

// print_r($result);

// php 对象取值   箭头语法
// echo $result->num_rows;  // 返回查询的数据数量

$obj = array();
if ($result) { // 有结果对象 => 可能有数据

    // 如何解析结果对象
    // mysqli_fetch_array($result)  解析结果对象中的一行 
    // 解析成功 =>  返回关联数组和数值数组
    // 解析失败 =>  null

    // mysqli_fetch_assoc($result)  解析结果对象中的一行 
    // 解析成功 =>  返回关联数组
    // 解析失败 =>  null

    // mysqli_fetch_object($result)  解析结果对象中的一行 
    // 解析成功 =>  返回php对象
    // 解析失败 =>  null

    // 循环解析
    // $all = [];
    // for ($i = 0; $i < $result->num_rows; $i++) {
    //     $item = mysqli_fetch_assoc($result);
    //     // print_r($item);
    //     // echo "<br>";
    //     array_push($all, $item);
    // }

    // 循环解析  => 先解析,将解析的结果赋值给变量$item ,并将其作为while循环的条件
    $all = [];
    while ($item = mysqli_fetch_assoc($result)) {  // 解析成功 =>  返回关联数组  解析失败=>结束循环

        // 后端 数据预处理 (后端向前端返回数据之前 => 先将数据处理一下)
        $item["chinese"] =  $item["chinese"] * 1;
        $item["math"] =  $item["math"] * 1;
        $item["english"] =  $item["english"] * 1;
        $item["total"] =  $item["total"] * 1;

        array_push($all, $item);
    }



    if (count($all)) {
        $obj["status"] = true;
        $obj["message"] = "OK";
        $obj["list"] =  $all;
    } else {
        $obj["status"] = true;
        $obj["message"] = "暂无数据!";
    }
} else {
    $obj["status"] = false;
    $obj["message"] = "sql语句有误";
    $obj["sql"] = $sql;
}
echo json_encode($obj);


// 单数据 => 直接解析 (对应id,name查找用户, 判断数据是否存在)
// 多数据 => 循环解析 (批量查找数据)
